package com.smasher.domain.room

import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Update
import com.smasher.domain.entity.BeanDomain

@Dao
interface DomainDao {

    // 插入单个域名，如果存在则替换
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertKotlinDomains(domains: BeanDomain)

    // 插入域名列表，如果存在则替换
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertKotlinDomains(domains: List<BeanDomain>)

    // 插入域名列表，如果存在则忽略
    @Insert(onConflict = OnConflictStrategy.IGNORE)
    suspend fun insertKotlinDomainsIgnore(domains: List<BeanDomain>)

    // 更新域名列表
    @Update
    suspend fun updateKotlinDomains(domains: List<BeanDomain>)

    // 删除单个域名
    @Delete
    suspend fun deleteKotlinDomains(domain: BeanDomain)

    // 根据ID加载单个域名
    @Query("SELECT * FROM domains WHERE id = :id")
    suspend fun loadKotlinBeanDomainById(id: Int): BeanDomain

    // 加载所有域名，按ID排序
    @Query("SELECT * FROM domains ORDER BY id")
    suspend fun loadKotlinBeanDomains(): List<BeanDomain>
}